package com.yourenbang.transaction.api.model.vo.pay;

import com.alibaba.fastjson.annotation.JSONField;
import com.yourenbang.lingyun.core.util.json.ToJSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 *   交易表
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DyPayTransactionPO implements Serializable, ToJSON {

    private String userBaseId;
    /**
     *   商户号
     */
    private String merchantNo;

    /**
     *   商户名称
     */
    private String merchantName;

    /**
     *   订单号
     */
    @NotBlank(message = "订单号不可空")
    private String orderNo;

    /**
     *   流水号
     */
    private String transactionNo;

    /**
     *   交易金额
     */
    private BigDecimal transactionAmount;

    /**
     *   费率 例（55）
     */
    private Integer rate;

    /**
     *   手续费
     */
    private BigDecimal transactionFee;

    /**
     *   卡类型   C:贷记卡 D:借记卡 WECHAT:微信 ALIPAY:支付宝
     */
    private String cardFlag;

    /**
     *   终端号
     */
    private String terminalId;

    /**
     *   机具号
     */
    private String sn;

    /**
     *   状态 10：刷卡成功 20：刷卡失败
     */
    private Short status;

    /**
     *   交易时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime transactionTime;

    /**
     *   交易年月（yyyymm）
     */
    private String transactionMonth;

    /**
     *   交易日（yyyymmdd）
     */
    private String transactionDay;

    /**
     * 下游终端号
     */
    private String clientNo;


    /**
     *   交易类型 412001:押金类型
     */
    private String transType;
}